The present invention relates generally to control system applications and more specifically to a system for constructing and distributing block-based program fragments for use in such applications.
A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever. The following notice applies to the software and data as described below and in the drawings hereto: Copyright (copyright) 1998, Honeywell, Inc., All Rights Reserved.
Multimedia is increasingly recognized as an enabling technology with diverse applications from interactive training to medical diagnosis, for example. However, the use of multimedia in control applications has received little attention. A driving force behind the inclusion of multimedia in control applications is the need for sensing higher order material and product properties. In high value added processes such as composite synthesis and semiconductor manufacturing, higher order material and product properties such as look, feel, consistency, and uniformity serve as quality measures for control. Many such property measurements can be inferred by correlating the outputs of multimedia sensors.
In the context of control applications, the term xe2x80x9cmultimediaxe2x80x9d implies a much broader scope than the traditional usage of the term that refers to audio, video and text. In the context of control applications, multimedia encompasses both image data and spectral data. Image data refers to still images, full-motion video, voice, graphics and text data. Image data is obtained from sources such as video, X-ray, and scanning electron microscopy to name a few. Spectral data refers to sensor data. Spectral data is obtained from sources such as infrared, color, acoustic emission, ultrasound, microwave, laser, and other optical devices, for example.
Examples of areas in which control applications using multimedia information can improve product yield and quality include: advanced composite materials, semiconductors, metal processing, pulp and paper industry, petroleum and refining, and virtual reality. Multimedia information is used in such control applications in many ways. For example, multimedia information is used for direct and indirect measurements of quality, as a means of improving process alarm management, and for implementing more effective control strategies such as Multiple-Input Multiple-Output (MIMO) control. In particular, MIMO control using multimedia and spectral sensor data allows control systems to operate on higher level, often intangible, properties of a product such as look, feel, and sound.
A MIMO control strategy refers to the simultaneous processing of multiple sensors (inputs) and actuators (outputs) to provide globally optimal control. This requires that multiple inputs and outputs be synchronized within specified time constraints and in turn places more performance demands on the underlying network. Due to processing and communications limitations, MIMO implements are used currently only for small processes.
What is needed is a network architecture that will support distributed control systems that will operate directly on multimedia data. What is also needed is a programming model for multimedia based MIMO control applications.
A distributed block-based programming model is described. According to one aspect of the invention, a user program is received. The user program specifies interconnections between a plurality of program blocks distributed across a plurality of processing nodes. The user program is translated into a system-level program having a program fragment for each one of the processing nodes. Each one of the program fragments comprise the program blocks located on the processing node and one or more system-level blocks for establishing connections between the processing node and a different processing node across a network.
According to another aspect of the invention, a user program specifying connections between a plurality of program blocks distributed across a plurality of processing nodes is received. At least one program block located on a root processing node is identified. The root node is the processing node controlling execution of the program. The input and output connections from each one of the program blocks located on the root node are traced. Connection between one of the program blocks located on the root processing node and one of the program blocks located on a remote processing node are identified. A first system-level block is inserted on the root processing node. A second system-level block is inserted on the remote node. The first and second system-level blocks provide network services. A program fragment is created for the processing nodes. The program fragment for each processing node comprises the program blocks and the system-level blocks located on the processing node.
Therefore, one aspect of the present invention provides a method of automatically creating and executing distributed programs based on a block based programming model. Another aspect of the invention provides centralized control for the distributed application. Still other and further embodiments, aspects and advantages of the invention will become apparent by reference to the drawings and by reading the following detailed description.